﻿ #define  _CRT_SECURE_NO_WARNINGS 1
#include"BinryTree.h"
#include<iostream>
using namespace std;

//
//class A
//{
//
//public:
//  A() :m_iVal(0) { test(); }
//
//  virtual void func() { std::cout << m_iVal << ' '; }
//
//  void test() { func(); }
//
//public:
//
//  int m_iVal;
//
//};
//
//
//
//class B : public A
//
//{
//
//public:
//
//    B() { test(); }
//
//    virtual void func()
//
//    {
//
//        ++m_iVal;
//
//        std::cout << m_iVal << ' ';
//
//    }
//
//};
//




//class A
//
//{

//public:
//
//    virtual void f()
//
//    {
//
//        cout << "A::f()" << endl;
//
//    }
//
//};
//
//
//
//class B : public A
//
//{
//
//private:
//
//    virtual void f()
//
//    {
//
//        cout << "B::f()" << endl;
//
//    }
//
//};
//
//


//int main(int argc, char* argv[])
//
//{
//
//    A* pa = (A*)new B;
//
//    pa->f();
//    return 0;
//
//}


int main()
{
	BStree<int> BS;

	int a[8] = {1,5,9,2,6,7,8,10 };

	for (auto& ch : a)
	{
		BS.InsertR(ch);
	}

	BS.Inorder();
	cout << endl;
	

	int  b[7]= { 1,5,9,2,6,7,8 };


	for (auto& ch : b)
	{
		BS.EraseR(ch);
		BS.Inorder();
		cout << endl;
	}
	
	
	return 0;

}